In the field of video processing, and in particular in the field of hybrid video coding and compression, it is known to use inter and intra picture prediction as well as transform coding. Such hybrid video coding technologies are used in known video compression standards like H.261, H.263, MPEG-1, 2, 4, H.264/AVC or HEVC.
FIG. 1 shows a video coder according to the state of the art. A video coder 100 comprises an input for receiving input pictures and an output for generating a coded video stream. The video coder 100 is adapted to apply prediction, transformation, quantization, and entropy coding to a video sequence. The transformation, quantization, and entropy coding are carried out respectively by a transform and quantize unit 101 and by an entropy encoder 103. Between the transform and quantize unit 101 and the entropy encoder 103, a scan unit 102 is provided.
The video sequence corresponds to a plurality of input pictures, wherein each picture is divided into blocks of a certain size that are either intra or inter coded. The blocks of the first picture of a video sequence are intra coded by means of an intra prediction unit 109. An intra picture is coded using only the information within the same picture, so that it can be independently decoded and it can provide an entry point in the bit stream for random access.
For inter coded pictures, information from previous and/or future coded pictures, which are called reference pictures, are used to reduce the temporal redundancy. Reference pictures are processed by an inverse scan, dequantize, inverse transform unit 104, by deblocking and SAO (sample adaptive offset) filters 105 and are stored in a frame buffer 106. Each block of an inter coded picture is predicted from a block of the same size in the reference pictures.
A motion estimation is applied by a motion estimation unit 107 to select motion data, such as for example a motion vector (MV), a mode decision, and reference frames. The motion estimation unit 107 comprises as input a picture to be inter coded and a reference picture. Motion data are selected based on certain cost function to minimize the difference between the original block and its predicted block. A coder control unit 110 selects the motion information, such as motion vector or reference frame index, based on the rate distortion optimization procedure.
A motion compensation carried out by a motion compensation unit 108 uses the motion data, which are coded and transmitted as side information to the decoder, to generate prediction signals or motion compensated frame signals. The difference between the original block and its prediction, which is called residual or prediction error, is then transformed. The transform coefficients are usually quantized, scanned, entropy coded and transmitted together with the motion data.
The decoder processing, which is part of the video coder 100, is shown in the dashed box 111 in FIG. 1. FIG. 2 shows a video decoder 200 according to the state of the art. The video decoder 200 comprises, similarly to the video coder 100, an entropy decoder 203, an inverse scan, dequantize, inverse transform unit 204, a deblocking filter and SAO unit 205, a frame buffer 206, a motion compensation unit 208 and an intra prediction unit 209.
Both the video coder 100 and video decoder 200 generate identical predictions. The residual data is reconstructed by the inverse scan, dequantize, inverse transform unit 204. The approximated input picture is reconstructed block-wise by adding the residual to the prediction. The result of the addition may be further fed into loop filters to smooth out artifacts. The final reconstructed picture is then store in the picture or frame buffer 206, which can be used for the prediction of subsequence pictures.
The motion compensation, as for example applied in the video coder 100 of FIG. 1 and in the video decoder of FIG. 2, is one of the most important elements in hybrid video coding/decoding. The motion compensation utilizes temporal information to predict the current block and reduces thereby the redundancy of a video. The accuracy of prediction depends on the similarity of the content between the reference block and the current block. With the change of velocity of the camera or certain objects in a scene, which is typically expected in action and sports movies, motion blur varies from frame to frame leading to reduced prediction accuracy.
The general motion compensation method from video coding standards works well with stationary objects or moving objects of constant velocity. However, its accuracy is limited in case of varying motion blur. Motion blur occurs in the direction of object motion if an object moves during the exposure time. An accelerated object looks blurrier in the current frame than in the previous reference frame while a decelerated object appears sharper. The changing extent of blur between successive frames generally enlarges the prediction error. Thus it results in reduced compression efficiency and consequently in an increased data rate for the residual of inter-predicted blocks.
In this context, it is known to reduce the prediction error by filtering the reference frame for varying motion blur compensation. For example, it is known to predefine a plurality of blurring filters and to apply these blurring filters to a reference frame stored in the frame buffer 106. By iteratively testing the performance of each filter in terms of rate distortion optimization, the best blur filter is selected by the video coder. For allowing the video decoder to decode the generated bit stream, the blurring filter that has been selected by the video coder is signaled to the decoder as side information within the bit stream.
Nevertheless, even if such a technique can lead to a reduction of the prediction error in case of a blur variation between a reference frame and a current frame being inter coded, the signaling of the selected blurring filter from the video coder to the video decoder requires additional bits within the encoded bit stream. This additional signaling in turn decreases the number of bits that can be used for encoding the prediction error in the encoded bit stream.